﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace KTX.Data
{
   public partial class ChiTietThang : System.ComponentModel.IDataErrorInfo
    {
       public int DienSD
       {
           get
           {
               return (this.DChiSoMoi - this.DChiSoCu);
           }
       }
       public int NuocSD
       {
           get
           {
               return (this.NChiSoMoi - this.NChiSoCu);
           }
       }
       public string TuNgayDenNgay
       {
           get
           {
               return string.Format("Từ {0} đến {1}", this.TuNgay.ToString(@"\N\g\à\y dd \t\h\á\n\g MM \n\ă\m yyyy"), this.DenNgay.ToString(@"\N\g\à\y dd \t\h\á\n\g MM \n\ă\m yyyy"));
           }
       }
       public decimal TienDien
       {
           get
           {
               return (this.DChiSoMoi - this.DChiSoCu) * this.DGDien;
           }
       }
       public decimal TienNuoc
       {
           get
           {
               return (this.NChiSoMoi - this.NChiSoCu) * this.DGNuoc;
           }
       }

       public decimal TongTien
       {
           get
           {
               return this.TienDien + this.TienNuoc;
           }
       }
        public string Error
        {
            get
            {
                if (this.EntityState == System.Data.EntityState.Added || this.EntityState == System.Data.EntityState.Modified)
                {
                    StringBuilder sb = new StringBuilder();

                    if (!String.IsNullOrWhiteSpace(this["MaDienNuoc"]))
                        sb.AppendLine(this["MaDienNuoc"]);

                    if (!String.IsNullOrWhiteSpace(this["TuNgay"]))
                        sb.AppendLine(this["TuNgay"]);

                    if (!String.IsNullOrWhiteSpace(this["DenNgay"]))
                        sb.AppendLine(this["DenNgay"]);

                    if (!String.IsNullOrWhiteSpace(this["DChiSoCu"]))
                        sb.AppendLine(this["DChiSoCu"]);

                    if (!String.IsNullOrWhiteSpace(this["DChiSoMoi"]))
                        sb.AppendLine(this["DChiSoMoi"]);

                    if (!String.IsNullOrWhiteSpace(this["NChiSoCu"]))
                        sb.AppendLine(this["NChiSoCu"]);

                    if (!String.IsNullOrWhiteSpace(this["NChiSoMoi"]))
                        sb.AppendLine(this["NChiSoMoi"]);

                    if (!String.IsNullOrWhiteSpace(this["DGNuoc"]))
                        sb.AppendLine(this["DGNuoc"]);

                    if (!String.IsNullOrWhiteSpace(this["DGDien"]))
                        sb.AppendLine(this["DGDien"]);

                    string errors = sb.ToString();
                    return !String.IsNullOrEmpty(errors) ? errors : String.Empty;
                }
                else
                {
                    return String.Empty;
                }
            }
        }

        public string this[string columnName]
        {
            get
            {
                if (this.EntityState == System.Data.EntityState.Added || this.EntityState == System.Data.EntityState.Modified)
                {
                    switch (columnName)
                    {
                        case "MaDienNuoc":
                            return this.DienNuoc==null ? "Chưa nhập ...!" : String.Empty;

                        case "TuNgay":
                            return this.TuNgay >=this.DenNgay ? "Ngày không hợp lệ!" : String.Empty;

                        case "DenNgay":
                            return this.TuNgay >= this.DenNgay ? "Ngày không hợp lệ!" : String.Empty;

                        case "DChiSoCu":
                            return ((this.DChiSoCu < 0) || (this.DChiSoCu > this.DChiSoMoi)) ? "Chỉ số điện chưa hợp lệ!" : String.Empty;

                        case "DChiSoMoi":
                            return ((this.DChiSoCu < 0) || (this.DChiSoCu > this.DChiSoMoi)) ? "Chỉ số điện chưa hợp lệ!" : String.Empty;

                        case "NChiSoCu":
                            return ((this.NChiSoCu < 0) || (this.NChiSoCu > this.NChiSoMoi)) ? "Chỉ số nước chưa hợp lệ!" : String.Empty;

                        case "NChiSoMoi":
                            return ((this.NChiSoCu < 0) || (this.NChiSoCu > this.NChiSoMoi)) ? "Chỉ số nước chưa hợp lệ!" : String.Empty;

                        case "DGNuoc":
                            return (this.DGNuoc < 0) ? "Đơn giá nước chưa hợp lệ!" : String.Empty;

                        case "DGDien":
                            return (this.DGDien < 0) ? "Đơn giá điện chưa hợp lệ!" : String.Empty;

                  //case "GiamPhi":
                        //    return ((this.GiamPhi < 0) || (this.GiamPhi > 100)) ? "Mức giảm phí chưa hợp lệ!" : String.Empty;
                        default:
                            return String.Empty;
                    }
                }
                else
                {
                    return String.Empty;
                }
            }
        }
    }
}
